package com.zhan.signalling.store;

import java.util.Properties;

import org.apache.commons.lang3.StringUtils;

import com.zhan.signalling.server.SocketServer;
import com.zhan.signalling.store.elasticsearch.ESStoreMessageStore;
import com.zhan.signalling.store.mongo.MongoStoreMessageStore;
import com.zhan.signalling.store.tablestore.TableStoreMessageStore;

/**
 * 信息存储
 * @author knight
 *
 */
public class StoreMessageFactory {
	
	private static Properties prop;
	
	private static String dataStoreType;
	
	/**
	 * 1  required
	 * @param prop
	 */
	public static void initStoreMessageFactory(Properties properties) {
		prop = properties;
		dataStoreType = StringUtils.defaultString(prop.getProperty(SocketServer.STORE_MESSAGE_PROP), "");
	}
	
	public static StoreMessageStore getHandler() {
		StoreMessageStore handler = null;
		switch (dataStoreType) {
			case MongoStoreMessageStore.name:
				handler = MongoStoreMessageStore.getHandler(prop);
				break;
			case ESStoreMessageStore.name:
				handler = ESStoreMessageStore.getHandler(prop);
				break;
			case TableStoreMessageStore.name:
				handler = TableStoreMessageStore.getHandler(prop);
				break;
			default:
				handler = new StoreMessageStore();
				break;
			}
		return handler;
	}
	
	
}
